/*
 * 认识构造函数并理解其作用 
 * 1、用function定义对象的同时也就定义了一个构造函数
 * 2、构造函数被用来创建对象(object)的实例(instance)
 * 3、只有使用 "new 函数名([参数])" 形式调用函数时，才属于将函数当作构造函数使用
 */

// 用 function 关键字来定义 Human 对象
// 同时也声明了一个构造函数(constructor)，该构造函数用于创建 Human对象 的实例
function Human(id, name, gender){
    console.log( 'Human execute');
    this.id = id ;
    this.name = name ;
    this.gender = gender ;
}

// 将 Human 当作 构造函数来使用
// 使用 "new 构造函数( 参数 )" 形式来创建 对象的实例
let x = new Human(1001, '张翠山', '男' );
console.log( x.id , x.name , x.gender );

// 把 Human 当作普通函数来使用
// 在 Human() 之前没有使用 new 关键字，而只是通过函数名来调用
Human(2002, '殷素素', '女');